Control Flow Imperative Expressions Block Structure
نویسندگان
چکیده
This paper presents a modular and extensible style of language speciication based on meta-computations. This style uses two monads to factor the static and dynamic parts of the speci-cation, thereby staging the speciication and achieving strong binding-time separation. Because metacomputations are deened in terms of monads, they can be constructed modularly and ex-tensibly using monad transformers. A number of language constructs are speciied: expressions, control-ow, imperative features, block structure, and higher-order functions and recursive bindings. Metacomputation-style speciication lends itself to semantics-directed compilation, which we demonstrate by creating a modular compiler for a higher-order, imperative, Algol-like language.
منابع مشابه
Compilation as Metacomputation: Binding Time Separation in Modular Compilers (ex Tende D Abstract)
This paper presents a modular and extensible style of language speciication based on meta-computations. This style uses two monads to factor the static and dynamic parts of the speci-cation, thereby staging the speciication and achieving strong binding-time separation. Because metacomputations are deened in terms of monads, they can be constructed modularly and ex-tensibly using monad transform...
متن کاملSpecialization of Imperative Programs Through Analysis of Relational Expressions
An inter-procedural data flow analysis operating on control flow graphs and collecting information about program expressions is described in this paper. The following relational and other expressions are analyzed: equivalences between program expressions and constants; linear-ordering inequalities between program expressions and constants; equalities originating from some program assignments; a...
متن کاملSeparation Logic for Non-local Control Flow and Block Scope Variables
We present an approach for handling non-local control flow (goto and return statements) in the presence of allocation and deallocation of block scope variables in imperative programming languages. We define a small step operational semantics and an axiomatic semantics (in the form of a separation logic) for a small C-like language that combines these two features, and which also supports pointe...
متن کاملSteering Clear of Triples: Deriving the Control Flow Graph Directly from the Abstract Syntax Tree in C Programs
This article explores the extension of Morgenthaler's Virtual Control Flow techniqueeMor97], which derives control owwASU86] semantics directly from the Abstract Syntax Tree, from the relatively coarse granularity of syntactic C expressions to the ner granularity of basic block expressions, that is, expressions without embedded control ow. We explain why this is a better level of abstraction fo...
متن کاملImperative Program Transformation by Rewriting
We present a method of specifying standard imperative program optimisations as a rewrite system. To achieve this we have extended the idea of matching sub-terms in expressions with simple patterns to matching blocks in a control flow graph. In order to express the complex restrictions on the applicability of these rewrites we add temporal logic side conditions. The combination of these features...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1998